dnl -*- sh -*-
dnl the "configure" script is made from this by running GNU "autoconf"
dnl
dnl "$Id: configure.in 9328 2012-04-07 11:56:09Z AlbrechtS $"
dnl
dnl Configuration script for the Fast Light Tool Kit (FLTK).
dnl
dnl Copyright 1998-2010 by Bill Spitzak and others.
dnl
dnl This library is free software. Distribution and use rights are outlined in
dnl the file "COPYING" which should have been included with this file.  If this
dnl file is missing or damaged, see the license at:
dnl
dnl     http://www.fltk.org/COPYING.php
dnl
dnl Please report all bugs and problems on the following page:
dnl
dnl      http://www.fltk.org/str.php
dnl

dnl We need at least autoconf 2.50...
AC_PREREQ(2.50)

dnl Required file in package...
AC_INIT(src/Fl.cxx)

dnl So --with-archflags option is used during "checking size of long"
if test `uname` = Darwin; then
  if test "x$with_archflags" != x ; then
    CFLAGS="$CFLAGS $with_archflags"
  fi
  USEMMFILES="Yes"
else
  USEMMFILES="No"
fi
AC_SUBST(USEMMFILES)

dnl FLTK library versions...
FL_MAJOR_VERSION=1
FL_MINOR_VERSION=3
FL_PATCH_VERSION=0
FL_API_VERSION=${FL_MAJOR_VERSION}.${FL_MINOR_VERSION}

AC_SUBST(FL_MAJOR_VERSION)
AC_SUBST(FL_MINOR_VERSION)
AC_SUBST(FL_PATCH_VERSION)
AC_SUBST(FL_API_VERSION)

dnl Get the operating system and version number...
uname=`uname`
uversion=`uname -r | sed -e '1,$s/[[^0-9]]//g'`
if test "x$uname" = xIRIX64; then
    uname="IRIX"
fi
if test "x$uname" = x; then
    # Older MinGW doesn't provide any output when uname is run, even with "-s".
    # Current MinGW (as of Jan. 2011) however does, so this is not necessary anymore...
    uname="MINGW"
fi

dnl Do not automatically add "-g" to compiler options...
ARCHFLAGS="${ARCHFLAGS:=}"
CFLAGS="${CFLAGS:=}"
CPPFLAGS="${CPPFLAGS:=}"
CXXFLAGS="${CXXFLAGS:=}"
DSOFLAGS="${DSOFLAGS:=}"
LDFLAGS="${LDFLAGS:=}"
OPTIM="${OPTIM:=}"

AC_SUBST(ARCHFLAGS)
AC_SUBST(OPTIM)

dnl in case of cross-compiling mingw32 under linux we must change uname for Win32 GUI
dnl run ./configure --host=i686-pc-ming32 try use X11 without change uname
if test "x$cross_compiling" != xno ; then
  case $host_alias in
    *mingw*)
    uname=MINGW
    ;;
  esac
fi

dnl OS-specific pre-tests...
dnl uname_GUI equals $uname unless we target Cygwin in combination with X11.
uname_GUI=$uname
case $uname in
    CYGWIN*)
        # Handle Cygwin option *first*, before all other tests.
	AC_ARG_ENABLE(cygwin, [  --enable-cygwin         use the Cygwin libraries [(default=no)]])
	AC_ARG_ENABLE(x11,    [  --enable-x11            use Cygwin with X11 [(default=no)]])
	if test x$enable_cygwin != xyes; then
	    # NOTE: We can't use ARCHFLAGS for this, since it does not work
	    #       with some of the function tests - Cygwin uses a
	    #       different C library...
	    CFLAGS="$CFLAGS -mno-cygwin"
	    CPPFLAGS="$CPPFLAGS -mno-cygwin"
	    CXXFLAGS="$CXXFLAGS -mno-cygwin"
	    LDFLAGS="$LDFLAGS -mno-cygwin"
	    DSOFLAGS="$DSOFLAGS -mno-cygwin"
	else
	    # we target Cygwin in combination with X11
	    if test x$enable_x11 = xyes; then
		uname_GUI="X11$uname"
	    fi
	fi
	;;
esac

dnl Define the libraries and link options we will need.
LINKFLTK="../lib/libfltk.a"
LINKFLTKFORMS="../lib/libfltk_forms.a"
LINKFLTKGL="../lib/libfltk_gl.a"
LINKFLTKIMG="../lib/libfltk_images.a"
GLDEMOS="gldemos"

LIBEXT=".a"
LIBNAME="../lib/libfltk.a"
FLLIBNAME="../lib/libfltk_forms.a"
GLLIBNAME="../lib/libfltk_gl.a"
IMGLIBNAME="../lib/libfltk_images.a"
CAIROLIBNAME="../lib/libfltk_cairo.a"

LIBBASENAME="libfltk.a"
FLLIBBASENAME="libfltk_forms.a"
GLLIBBASENAME="libfltk_gl.a"
IMGLIBBASENAME="libfltk_images.a"
CAIROLIBBASENAME="libfltk_cairo.a"

dnl Check for Cairo library unless disabled...
CAIRODIR=""
CAIROFLAGS=""
LINKFLTKCAIRO=""
FLTKCAIROOPTION=""
CAIROLIBS=""

AC_ARG_ENABLE(cairoext,[  --enable-cairoext       use fltk code instrumentation for cairo extended use (default=no)])
AC_ARG_ENABLE(cairo,[  --enable-cairo          use lib Cairo  (default=no)])

if test x$enable_cairoext = xyes; then
	  AC_DEFINE(FLTK_USE_CAIRO)
	  AC_DEFINE(FLTK_HAVE_CAIRO)
	  dnl FIXME This part should be fixed so configure do not depend on
	  dnl we do not rely on pkg-config .
	  CAIRODIR="cairo"
          CAIROFLAGS="`pkg-config --cflags cairo`"
          CAIROLIBS="-lcairo -lpixman-1"
          CXXFLAGS="$CAIROFLAGS $CXXFLAGS"
	  LINKFLTKCAIRO="../lib/libfltk_cairo.a"
	  FLTKCAIROOPTION="-L ../cairo -lfltk_cairo$SHAREDSUFFIX"
	  LIBS="$CAIROLIBS $LIBS" 
	  dnl $LINKFLTKCAIRO 
	  LINKFLTK+=" $LINKFLTKCAIRO"
else 
    if test x$enable_cairo = xyes; then
	  AC_DEFINE(FLTK_HAVE_CAIRO)
	  dnl FIXME This part should be fixed so configure do not depend on
	  dnl we do not rely on pkg-config .
	  CAIRODIR="cairo"
          CAIROFLAGS="`pkg-config --cflags cairo`"
          CAIROLIBS="-lcairo -lpixman-1"
          CXXFLAGS="$CAIROFLAGS $CXXFLAGS"
	  LINKFLTKCAIRO="../lib/libfltk_cairo.a"
	  FLTKCAIROOPTION="-L ../cairo -lfltk_cairo$SHAREDSUFFIX"
    fi
fi

AC_SUBST(CAIRODIR)
AC_SUBST(CAIROFLAGS)
AC_SUBST(CAIROLIBS)
AC_SUBST(LINKFLTKCAIRO)
AC_SUBST(FLTKCAIROOPTION)


AC_SUBST(FLLIBNAME)
AC_SUBST(GLDEMOS)
AC_SUBST(GLLIBNAME)
AC_SUBST(IMGLIBNAME)
AC_SUBST(CAIROLIBNAME)
AC_SUBST(LIBEXT)
AC_SUBST(LIBNAME)
AC_SUBST(LINKFLTK)
AC_SUBST(LINKFLTKFORMS)
AC_SUBST(LINKFLTKGL)
AC_SUBST(LINKFLTKIMG)

AC_SUBST(LIBBASENAME)
AC_SUBST(FLLIBBASENAME)
AC_SUBST(GLLIBBASENAME)
AC_SUBST(IMGLIBBASENAME)
AC_SUBST(CAIROLIBBASENAME)

dnl Handle compile-time options...
AC_ARG_ENABLE(debug, [  --enable-debug          turn on debugging [default=no]])
if test x$enable_debug = xyes; then
    DEBUGFLAG="-g "
else
    DEBUGFLAG=""
fi

AC_ARG_ENABLE(cp936, [  --enable-cp936          turn on CP936 [default=no]])
if test x$enable_cp936 = xyes; then
    CFLAGS="$CFLAGS -DCP936"
fi


AC_ARG_ENABLE(gl, [  --enable-gl             turn on OpenGL support [default=yes]])

AC_ARG_ENABLE(shared, [  --enable-shared         turn on shared libraries [default=no]])
if test x$enable_shared = xyes; then
    PICFLAG=1
    SHAREDSUFFIX=""
    FLUID="fluid-shared"

    case $uname in
	Darwin*)
            DSONAME="libfltk.$FL_API_VERSION.dylib"
            FLDSONAME="libfltk_forms.$FL_API_VERSION.dylib"
            GLDSONAME="libfltk_gl.$FL_API_VERSION.dylib"
            IMGDSONAME="libfltk_images.$FL_API_VERSION.dylib"
            CAIRODSONAME="libfltk_cairo.$FL_API_VERSION.dylib"
	    DSOCOMMAND="\$(CXX) \$(ARCHFLAGS) \$(DSOFLAGS) -dynamiclib -lc -o"
	    ;;

	SunOS* | UNIX_S*)
            DSONAME="libfltk.so.$FL_API_VERSION"
            FLDSONAME="libfltk_forms.so.$FL_API_VERSION"
            GLDSONAME="libfltk_gl.so.$FL_API_VERSION"
            IMGDSONAME="libfltk_images.so.$FL_API_VERSION"
            CAIRODSONAME="libfltk_cairo.so.$FL_API_VERSION"
	    DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -h \$@ \$(LDLIBS) -G $DEBUGFLAG -o"
	    if test "x$libdir" != "x/usr/lib"; then
		    DSOLINK="-R$libdir"
            fi
	    ;;
	HP-UX*)
            DSONAME="libfltk.sl.$FL_API_VERSION"
            FLDSONAME="libfltk_forms.sl.$FL_API_VERSION"
            GLDSONAME="libfltk_gl.sl.$FL_API_VERSION"
            IMGDSONAME="libfltk_images.sl.$FL_API_VERSION"
            CAIRODSONAME="libfltk_cairo.sl.$FL_API_VERSION"
	    DSOCOMMAND="ld \$(DSOFLAGS) -b -z +h \$@ $DEBUGFLAG -o"
	    if test "x$libdir" != "x/usr/lib"; then
		    DSOLINK="-Wl,-rpath,$libdir"
            fi
	    ;;
	IRIX*)
            DSONAME="libfltk.so.$FL_API_VERSION"
            FLDSONAME="libfltk_forms.so.$FL_API_VERSION"
            GLDSONAME="libfltk_gl.so.$FL_API_VERSION"
            IMGDSONAME="libfltk_images.so.$FL_API_VERSION"
            CAIRODSONAME="libfltk_cairo.so.$FL_API_VERSION"
            DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -Wl,-soname,\$@,-set_version,sgi1.1 \$(LDLIBS) -shared $DEBUGFLAG -o"
	    if test "x$libdir" != "x/usr/lib" -a "x$libdir" != "x/usr/lib32" -a "x$libdir" != "x/usr/lib64"; then
		    DSOLINK="-Wl,-rpath,$libdir"
            fi
	    ;;
	OSF1*)
            DSONAME="libfltk.so.$FL_API_VERSION"
            FLDSONAME="libfltk_forms.so.$FL_API_VERSION"
            GLDSONAME="libfltk_gl.so.$FL_API_VERSION"
            IMGDSONAME="libfltk_images.so.$FL_API_VERSION"
            CAIRODSONAME="libfltk_cairo.so.$FL_API_VERSION"
            DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -Wl,-soname,\$@ \$(LDLIBS) -shared $DEBUGFLAG -o"
	    if test "x$libdir" != "x/usr/lib" -a "x$libdir" != "x/usr/lib32"; then
		    DSOLINK="-Wl,-rpath,$libdir"
            fi
	    ;;
	Linux* | *BSD*)
            DSONAME="libfltk.so.$FL_API_VERSION"
            FLDSONAME="libfltk_forms.so.$FL_API_VERSION"
            GLDSONAME="libfltk_gl.so.$FL_API_VERSION"
            IMGDSONAME="libfltk_images.so.$FL_API_VERSION"
            CAIRODSONAME="libfltk_cairo.so.$FL_API_VERSION"
            DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -Wl,-soname,\$@ \$(LDLIBS) -shared -fPIC $DEBUGFLAG -o"
	    if test "x$libdir" != "x/usr/lib" -a "x$libdir" != "x/usr/lib64"; then
		    DSOLINK="-Wl,-rpath,$libdir"
            fi
	    ;;
	AIX*)
            DSONAME="libfltk_s.a"
            FLDSONAME="libfltk_forms_s.a"
            GLDSONAME="libfltk_gl_s.a"
            IMGDSONAME="libfltk_images_s.a"
            CAIRODSONAME="libfltk_cairo_s.a"
            DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -Wl,-bexpall,-bM:SRE,-bnoentry -o"
            SHAREDSUFFIX="_s"
            ;;
        CYGWIN* | MINGW*)
	    PICFLAG=0
	    if test x$enable_cygwin != xyes; then
		DSONAME="mgwfltknox-$FL_API_VERSION.dll"
		FLDSONAME="mgwfltknox_forms-$FL_API_VERSION.dll"
		GLDSONAME="mgwfltknox_gl-$FL_API_VERSION.dll"
		IMGDSONAME="mgwfltknox_images-$FL_API_VERSION.dll"
		CAIRODSONAME="mgwfltknox_cairo-$FL_API_VERSION.dll"
	    else
		if test x$enable_x11 = xyes; then
		    DSONAME="cygfltk-$FL_API_VERSION.dll"
		    FLDSONAME="cygfltk_forms-$FL_API_VERSION.dll"
		    GLDSONAME="cygfltk_gl-$FL_API_VERSION.dll"
		    IMGDSONAME="cygfltk_images-$FL_API_VERSION.dll"
		    CAIRODSONAME="cygfltk_cairo-$FL_API_VERSION.dll"
		else
		    DSONAME="cygfltknox-$FL_API_VERSION.dll"
		    FLDSONAME="cygfltknox_forms-$FL_API_VERSION.dll"
		    GLDSONAME="cygfltknox_gl-$FL_API_VERSION.dll"
		    IMGDSONAME="cygfltknox_images-$FL_API_VERSION.dll"
		    CAIRODSONAME="cygfltknox_cairo-$FL_API_VERSION.dll"
		fi
	    fi
	    #-----------------------------------------------------------
	    # -Wl,--enable-runtime-pseudo-reloc: See str 1585
	    # appears to be necessary for older binutils versions < 2.16
	    #-----------------------------------------------------------
            LDFLAGS="$LDFLAGS -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc"
	    DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -shared \
	    	-Wl,--whole-archive -Wl,--export-all-symbols \
		-Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-import \
		-Wl,--enable-auto-image-base -o \$@"
	    ;;
	*)
            AC_MSG_WARN(Shared libraries may not be supported.  Trying -shared option with compiler.)
            DSONAME="libfltk.so.$FL_API_VERSION"
            FLDSONAME="libfltk_forms.so.$FL_API_VERSION"
            GLDSONAME="libfltk_gl.so.$FL_API_VERSION"
            IMGDSONAME="libfltk_images.so.$FL_API_VERSION"
            CAIRODSONAME="libfltk_cairo.so.$FL_API_VERSION"
            DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -Wl,-soname,\$@ \$(LDLIBS) -shared $DEBUGFLAG -o"
	    ;;
    esac

    LINKSHARED="-L../src $FLTKCAIROOPTION -lfltk_images$SHAREDSUFFIX -lfltk_forms$SHAREDSUFFIX -lfltk$SHAREDSUFFIX"
else
    DSOCOMMAND="echo"
    DSOLINK=""
    DSONAME=""
    FLDSONAME=""
    GLDSONAME=""
    IMGDSONAME=""
    CAIRODSONAME=""
    PICFLAG=0
    SHAREDSUFFIX=""
    FLUID="fluid"
    LINKSHARED="$LINKFLTKCAIRO ../lib/libfltk_images.a ../lib/libfltk_forms.a ../lib/libfltk.a"
fi

AC_SUBST(DSOCOMMAND)
AC_SUBST(DSOFLAGS)
AC_SUBST(DSOLINK)
AC_SUBST(DSONAME)
AC_SUBST(FLDSONAME)
AC_SUBST(GLDSONAME)
AC_SUBST(IMGDSONAME)
AC_SUBST(CAIRODSONAME)
AC_SUBST(SHAREDSUFFIX)
AC_SUBST(LINKSHARED)
AC_SUBST(FLUID)

AC_ARG_ENABLE(threads, [  --enable-threads        enable multi-threading support (default=yes)])

AC_ARG_WITH(optim, [  --with-optim="flags"    use custom optimization flags])

AC_ARG_WITH(archflags, [  --with-archflags="flags"
                          use custom architecture flags 
			  (possible Mac OS X values include -arch i386, -arch x86_64, -arch ppc)],
    ARCHFLAGS="$withval")
case $uname in
    Darwin*)
# QD is not supported anymore since 1.3
	AC_DEFINE(__APPLE_QUARTZ__)
	;;
esac

dnl Find commands...
AC_PROG_CC
AC_PROG_CXX
AC_PROG_INSTALL
case $uname in
    OSF1*)
	INSTALL="`pwd`/install-sh -c"
	;;
esac
if test "$INSTALL" = "$ac_install_sh"; then
    # Use full path to install-sh script...
    INSTALL="`pwd`/install-sh -c"
fi
AC_PATH_PROG(NROFF,nroff)
if test "x$NROFF" = "x:"; then
    # Try groff instead of nroff...
    AC_PATH_PROG(GROFF,groff)
    if test "x$GROFF" = "x:"; then
        NROFF="echo"
    else
        NROFF="$GROFF -T ascii"
    fi
fi
AC_PATH_PROG(HTMLDOC,htmldoc)
AC_PATH_PROG(DOXYDOC,doxygen)

dnl How do we make libraries?
AC_PROG_RANLIB
AC_PATH_TOOL(AR, ar)

if test "x$AR" = "x:"; then
    AC_MSG_ERROR(Configure could not find the library archiver, aborting.)
fi

if test "x$RANLIB" != "x:"; then
    LIBCOMMAND="$AR cr"
else
    LIBCOMMAND="$AR crs"
fi

AC_SUBST(LIBCOMMAND)

dnl how to compile (Windows) resource files
dnl this will only be used to compile resources for Windows .exe files
AC_PATH_TOOL(RC,windres)

dnl Architecture checks...
if test "$uname" != Darwin; then
  AC_C_BIGENDIAN
fi

AC_CHECK_SIZEOF(short, 2)
AC_CHECK_SIZEOF(int, 4)
AC_CHECK_SIZEOF(long, 4)
if test $ac_cv_sizeof_short -eq 2; then
    AC_DEFINE(U16,unsigned short)
fi
if test $ac_cv_sizeof_int -eq 4; then
    AC_DEFINE(U32,unsigned)
else
    if test $ac_cv_sizeof_long -eq 4; then
        AC_DEFINE(U32,unsigned long)
    fi
fi
if test "$uname" != Darwin; then
	if test $ac_cv_sizeof_int -eq 8; then
		AC_DEFINE(U64,unsigned)
	else
		if test $ac_cv_sizeof_long -eq 8; then
			AC_DEFINE(U64,unsigned long)
		fi
	fi
fi

dnl Does the C++ compiler support the bool type?
AC_CACHE_CHECK(whether the compiler recognizes bool as a built-in type,
    ac_cv_cxx_bool,[
	AC_LANG_SAVE
	AC_LANG_CPLUSPLUS
	AC_TRY_COMPILE([
	    int f(int  x){return 1;}
	    int f(char x){return 1;}
	    int f(bool x){return 1;}
	],[
	    bool b = true;
	    return f(b);
	], ac_cv_cxx_bool=yes, ac_cv_cxx_bool=no)
	AC_LANG_RESTORE
    ])

if test "$ac_cv_cxx_bool" != yes; then
    CXXFLAGS="-Dbool=char -Dfalse=0 -Dtrue=1 $CXXFLAGS"
fi

dnl Standard headers and functions...
AC_HEADER_DIRENT
AC_CHECK_HEADER(sys/select.h,AC_DEFINE(HAVE_SYS_SELECT_H))
AC_CHECK_HEADER(sys/stdtypes.h,AC_DEFINE(HAVE_SYS_SELECT_H))

dnl Do we have the POSIX compatible scandir() prototype?
AC_CACHE_CHECK([whether we have the POSIX compatible scandir() prototype],
    ac_cv_cxx_scandir_posix,[
	AC_LANG_SAVE
	AC_LANG_CPLUSPLUS
	AC_TRY_COMPILE([
	  #include <dirent.h>
	  int func (const char *d, dirent ***list, void *sort) {
	    int n = scandir(d, list, 0, (int(*)(const dirent **, const dirent **))sort);
	  }
	],[
	], ac_cv_cxx_scandir_posix=yes, ac_cv_cxx_scandir_posix=no)
	AC_LANG_RESTORE
    ])

dnl Define both HAVE_SCANDIR... macros, if the POSIX compatible function is
dnl available. Otherwise: check, whether any scandir prototype is available,
dnl but don't use it on SunOS and QNX because of an incompatibility in pre-Y2K
dnl SunOS scandir versions. We assume, though, that the POSIX compatible
dnl version on newer SunOS/Solaris versions works as expected.
if test "$ac_cv_cxx_scandir_posix" = yes; then
    AC_DEFINE(HAVE_SCANDIR)
    AC_DEFINE(HAVE_SCANDIR_POSIX)
else
    AC_CHECK_FUNC(scandir,
	if test "x$uname" = xSunOS -o "x$uname" = xQNX; then
            AC_MSG_WARN(Not using $uname scandir emulation function.)
	else
            AC_DEFINE(HAVE_SCANDIR)
        fi)
fi

AC_CHECK_FUNC(vsnprintf,[
    case "$uname" in
    	HP-UX*)
	    if test "$uversion" = "1020"; then
	        AC_MSG_WARN(Not using built-in vsnprintf function because you are running HP-UX 10.20.)
	    else
        	AC_DEFINE(HAVE_VSNPRINTF)
	    fi
	    ;;

    	OSF1*)
	    if test "$uversion" = "40"; then
                AC_MSG_WARN(Not using built-in vsnprintf function because you are running Tru64 4.0.)
	    else
        	AC_DEFINE(HAVE_VSNPRINTF)
	    fi
	    ;;

        *)
            AC_DEFINE(HAVE_VSNPRINTF)
	    ;;
    esac])
AC_CHECK_FUNC(snprintf,[
    case "$uname" in
    	HP-UX*)
	    if test "$uversion" = "1020"; then
	        AC_MSG_WARN(Not using built-in snprintf function because you are running HP-UX 10.20.)
	    else
        	AC_DEFINE(HAVE_SNPRINTF)
	    fi
	    ;;

    	OSF1*)
	    if test "$uversion" = "40"; then
                AC_MSG_WARN(Not using built-in snprintf function because you are running Tru64 4.0.)
	    else
        	AC_DEFINE(HAVE_SNPRINTF)
	    fi
	    ;;

        *)
            AC_DEFINE(HAVE_SNPRINTF)
	    ;;
    esac])
AC_CHECK_HEADER(strings.h, AC_DEFINE(HAVE_STRINGS_H))
AC_CHECK_FUNCS(strcasecmp strlcat strlcpy)

AC_CHECK_HEADER(locale.h, AC_DEFINE(HAVE_LOCALE_H))
AC_CHECK_FUNCS(localeconv)

dnl FLTK library uses math library functions...
AC_SEARCH_LIBS(pow, m)

dnl Check for largefile support...
AC_SYS_LARGEFILE

dnl Define largefile options as needed...
LARGEFILE=""
if test x$enable_largefile != xno; then
	LARGEFILE="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE"

	if test x$ac_cv_sys_large_files = x1; then
		LARGEFILE="$LARGEFILE -D_LARGE_FILES"
	fi

	if test x$ac_cv_sys_file_offset_bits = x64; then
		LARGEFILE="$LARGEFILE -D_FILE_OFFSET_BITS=64"
	fi
fi
AC_SUBST(LARGEFILE)

dnl Check for "long long" support...
AC_CACHE_CHECK(for long long int, ac_cv_c_long_long,
	[if test "$GCC" = yes; then
		ac_cv_c_long_long=yes
	else
		AC_TRY_COMPILE(,[long long int i;],
			ac_cv_c_long_long=yes,
			ac_cv_c_long_long=no)
	fi])

if test $ac_cv_c_long_long = yes; then
	AC_DEFINE(HAVE_LONG_LONG)
fi

AC_CHECK_FUNC(strtoll, AC_DEFINE(HAVE_STRTOLL))

dnl Check for dlopen/dlsym...
AC_SEARCH_LIBS(dlsym, dl, AC_DEFINE(HAVE_DLSYM))
AC_CHECK_HEADER(dlfcn.h, AC_DEFINE(HAVE_DLFCN_H))

dnl Check for audio libraries...
AUDIOLIBS=""

case $uname in
    CYGWIN* | MINGW*)
	dnl Cygwin environment...
	AUDIOLIBS="-lwinmm"
	;;

    Darwin*)
	AUDIOLIBS="-framework CoreAudio"
	;;

    *)
	AC_CHECK_HEADER(alsa/asoundlib.h,
	    AC_DEFINE(HAVE_ALSA_ASOUNDLIB_H)
	    AUDIOLIBS="-lasound")
        ;;
esac

AC_SUBST(AUDIOLIBS)

dnl Check for image libraries...
SAVELIBS="$LIBS"
IMAGELIBS=""
STATICIMAGELIBS=""

AC_SUBST(IMAGELIBS)
AC_SUBST(STATICIMAGELIBS)

# Handle the JPEG lib linking mode (use fltk local or system lib)
# If --enable-(resp. --disable-)localjpeg parameter is not set by user
# Then we check the JPEG lib usability, with result in sysjpeglib_ok variable
AC_ARG_ENABLE(localjpeg, [  --enable-localjpeg      use local JPEG library, default=auto])
# Check for System lib use if automatic mode or --disable-localjpeg is requested
sysjpeglib_ok=no
sysjpeginc_ok=no
if test x$enable_localjpeg != xyes; then
    AC_CHECK_LIB(jpeg,jpeg_CreateCompress,
	[AC_CHECK_HEADER(jpeglib.h,
	    sysjpeginc_ok=yes)
	    if test x$sysjpeginc_ok = xyes; then
		sysjpeglib_ok=yes
		fi])
fi
# Now set the jpeg lib and include flags according to the requested mode and availability 
if test x$enable_localjpeg = xyes -o x$sysjpeglib_ok = xno; then
    JPEGINC="-I../jpeg"
    JPEG="jpeg"
    IMAGELIBS="-lfltk_jpeg $IMAGELIBS"
    STATICIMAGELIBS="\$libdir/libfltk_jpeg.a $STATICIMAGELIBS"
    AC_DEFINE(HAVE_LIBJPEG)
    #ac_cv_lib_jpeg_jpeg_CreateCompress=no # from ima: should not be necessary
    # Finally, warn user if system lib was requested but not found
    if test x$enable_localjpeg = xno; then
	AC_MSG_WARN(Cannot find system jpeg lib or header: choosing the local lib mode.)
    fi
else
    JPEGINC=""
    JPEG=""
    IMAGELIBS="-ljpeg $IMAGELIBS"
    STATICIMAGELIBS="-ljpeg $STATICIMAGELIBS"
    AC_DEFINE(HAVE_LIBJPEG)
fi

# Handle the ZLIB lib linking mode (use fltk local or system lib)
# If --enable-(resp. --disable-)localzlib parameter is not set by user
# Then we check the ZLIB lib usability, with result in syszlib_ok variable
AC_ARG_ENABLE(localzlib, [  --enable-localzlib      use local ZLIB library, default=auto])
# Check for System lib use if automatic mode or --disable-localzlib is requested
syszlib_ok=no
syszinc_ok=no
if test x$enable_localzlib != xyes; then
    AC_CHECK_LIB(z,gzgets,
	[AC_CHECK_HEADER(zlib.h, 
		syszinc_ok=yes)
	if test x$syszinc_ok = xyes; then
	    syszlib_ok=yes
	    fi])
fi
# Now set the Z lib and include flags according to the requested mode and availability 
if test x$enable_localzlib = xyes -o x$syszlib_ok = xno ; then
    ZLIBINC="-I../zlib"
    ZLIB="zlib"
    LIBS="-lfltk_z $LIBS"
    IMAGELIBS="-lfltk_z $IMAGELIBS"
    STATICIMAGELIBS="\$libdir/libfltk_z.a $STATICIMAGELIBS"
    AC_DEFINE(HAVE_LIBZ)
    ac_cv_lib_z_gzgets=no # fc: is still necessary ?
    # Finally, warn user if system lib was requested but not found
    if test x$enable_localzlib = xno; then
	AC_MSG_WARN(Cannot find system z lib or header: choosing the local lib mode.)
    fi
else
    ZLIBINC=""
    ZLIB=""
    LIBS="-lz $LIBS"
    IMAGELIBS="-lz $IMAGELIBS"
    STATICIMAGELIBS="-lz $STATICIMAGELIBS"
    AC_DEFINE(HAVE_LIBZ)
fi

# Handle the PNG lib linking mode (use fltk local or system lib)
# If --enable-(resp. --disable-)localpng parameter is not set by user
# Then we check the png lib usability with result in syspng_lib variable
AC_ARG_ENABLE(localpng, [  --enable-localpng       use local PNG library, default=auto])

# Now check if system lib is usable, we check Lib AND include availability with inc variant,
# but only, if the builtin lib is not requested
syspnglib_ok=no
syspnginc_ok=no
if test x$enable_localpng != xyes; then
  AC_CHECK_LIB(png, png_read_info, 
    [AC_CHECK_HEADER(png.h, 
	AC_DEFINE(HAVE_PNG_H)
	syspnginc_ok=yes)
    AC_CHECK_HEADER(libpng/png.h, 
	AC_DEFINE(HAVE_LIBPNG_PNG_H)
	syspnginc_ok=yes)
    if test x$syspnginc_ok = xyes; then
	syspnglib_ok=yes
    fi])
fi

# The following is executed if the lib was not found usable or if local lib is required explicitly
if test x$enable_localpng = xyes -o x$syspnglib_ok = xno ; then
    PNGINC="-I../png"
    PNG="png"
    IMAGELIBS="-lfltk_png $IMAGELIBS"
    STATICIMAGELIBS="\$libdir/libfltk_png.a $STATICIMAGELIBS"
    AC_DEFINE(HAVE_LIBPNG)
    AC_DEFINE(HAVE_PNG_H)
    AC_DEFINE(HAVE_PNG_GET_VALID)
    AC_DEFINE(HAVE_PNG_SET_TRNS_TO_ALPHA)
    # Finally, warn user if system lib was requested but not found
    if test x$enable_localpng = xno; then
	AC_MSG_WARN(Cannot find system png lib or header: choosing the local lib mode.)
    fi
else
    PNGINC=""
    PNG=""
    IMAGELIBS="-lpng $IMAGELIBS"
    STATICIMAGELIBS="-lpng $STATICIMAGELIBS"
    AC_DEFINE(HAVE_LIBPNG)
    AC_CHECK_LIB(png,png_get_valid, AC_DEFINE(HAVE_PNG_GET_VALID))
    AC_CHECK_LIB(png,png_set_tRNS_to_alpha, AC_DEFINE(HAVE_PNG_SET_TRNS_TO_ALPHA))
fi

AC_SUBST(JPEG)
AC_SUBST(JPEGINC)
AC_SUBST(PNG)
AC_SUBST(PNGINC)
AC_SUBST(ZLIB)
AC_SUBST(ZLIBINC)

dnl Restore original LIBS settings...
LIBS="$SAVELIBS"

dnl See if we need a .exe extension on executables...
AC_EXEEXT

dnl Check for pthreads for multi-threaded apps...
have_pthread=no
PTHREAD_FLAGS=""

dnl Test whether we want to check for pthreads. We must not do it on Windows
dnl unless we run under Cygwin with --enable-cygwin, since we always use
dnl native threads on Windows (even if libpthread is available)
check_pthread=yes
case $uname in
    MINGW*)
	check_pthread=no
	;;
    CYGWIN*)
	if test "x$enable_cygwin" != xyes; then
	    check_pthread=no
	fi
	;;
    *)
	;;
esac

if test "x$enable_threads" != xno -a x$check_pthread = xyes; then
    AC_CHECK_HEADER(pthread.h, AC_DEFINE(HAVE_PTHREAD_H))

    if test x$ac_cv_header_pthread_h = xyes; then
	dnl Check various threading options for the platforms we support
	for flag in -lpthreads -lpthread -pthread; do
            AC_MSG_CHECKING([for pthread_create using $flag])
	    SAVELIBS="$LIBS"
	    LIBS="$flag $LIBS"
            AC_TRY_LINK([#include <pthread.h>],
		[pthread_create(0, 0, 0, 0);],
        	have_pthread=yes,
		LIBS="$SAVELIBS")
            AC_MSG_RESULT([$have_pthread])

	    if test $have_pthread = yes; then
	        AC_DEFINE(HAVE_PTHREAD)
		PTHREAD_FLAGS="-D_THREAD_SAFE -D_REENTRANT"

		# Solaris requires -D_POSIX_PTHREAD_SEMANTICS to
		# be POSIX-compliant... :(
		if test $uname = SunOS; then
		    PTHREAD_FLAGS="$PTHREAD_FLAGS -D_POSIX_PTHREAD_SEMANTICS"
		fi
		break
	    fi
	done
    fi
fi

AC_SUBST(PTHREAD_FLAGS)

dnl Define OS-specific stuff...
HLINKS=
OSX_ONLY=:
THREADS=

AC_ARG_WITH(links, [  --with-links            make header links for common misspellings (default=no)])

INSTALL_DESKTOP=""
UNINSTALL_DESKTOP=""

case $uname_GUI in
    CYGWIN* | MINGW*)
	dnl Cygwin environment, using windows GDI ...
	# Recent versions of Cygwin are seriously broken and the size
	# checks don't work because the shell puts out \r\n instead of
	# \n.  Here we just force U32 to be defined to "unsigned"...
        AC_DEFINE(U32,unsigned)
	CFLAGS="-mwindows -DWIN32 -DUSE_OPENGL32 $CFLAGS"
	CXXFLAGS="-mwindows -DWIN32 -DUSE_OPENGL32 $CXXFLAGS"
	LDFLAGS="-mwindows $LDFLAGS"
	DSOFLAGS="-mwindows $DSOFLAGS"
	LIBS="$LIBS -lole32 -luuid -lcomctl32 -lwinspool"
	if test "x$with_optim" = x; then
	    dnl Avoid -Os optimization on Cygwin/MinGW
	    with_optim="-O3"
	fi

	if test x$enable_gl != xno; then
	    AC_CHECK_HEADER(GL/gl.h,
	        AC_DEFINE(HAVE_GL)
		GLLIB="-lopengl32")
	    AC_CHECK_HEADER(GL/glu.h,
        	AC_DEFINE(HAVE_GL_GLU_H)
		GLLIB="-lglu32 $GLLIB")
	else
	    LINKFLTKGL=""
	    GLLIBNAME=""
	    GLDSONAME=""
	    GLDEMOS=""
	fi

	if test "x$enable_threads" != xno; then
	    if test x$have_pthread = xyes; then
		AC_DEFINE(HAVE_PTHREAD)
	    fi
        fi

	THREADS="threads$EXEEXT"

	# Don't make symlinks since Windows is not case sensitive.
	if test "x$with_links" != xyes; then
		HLINKS="#"
	fi
	;;

    Darwin*)
        # MacOS X uses Cocoa for graphics.
        LIBS="$LIBS -framework Cocoa"

	if test x$have_pthread = xyes; then
	    AC_DEFINE(HAVE_PTHREAD)
	    THREADS="threads$EXEEXT"
	fi

	if test x$enable_gl != xno; then
            AC_DEFINE(HAVE_GL)
            AC_DEFINE(HAVE_GL_GLU_H)
            GLLIB="-framework AGL -framework OpenGL -framework ApplicationServices"
        else
	    LINKFLTKGL=""
	    GLLIBNAME=""
	    GLDSONAME=""
	    GLDEMOS=""
        fi

	# Don't make symlinks because HFS+ is not case sensitive...
	if test "x$with_links" != xyes; then
		HLINKS="#"
	fi

	# Some steps are only done for OS X package management
	OSX_ONLY=

	# Install/Uninstall FLUID application
	INSTALL_DESKTOP="install-osx"
	UNINSTALL_DESKTOP="uninstall-osx"
	;;

    *)
	# All others are UNIX/X11...
	# This includes Cygwin target combined with X11
	if test x$have_pthread = xyes; then
	    AC_DEFINE(HAVE_PTHREAD)
	    THREADS="threads$EXEEXT"
	fi

	dnl Check for X11...
	AC_PATH_XTRA

	if test x$no_x = xyes; then
	    AC_MSG_ERROR(Configure could not find required X11 libraries, aborting.)
	fi

	if test "x$X_PRE_LIBS" != x; then
	    AC_MSG_WARN(Ignoring libraries \"$X_PRE_LIBS\" requested by configure.)
	fi

	LIBS="$LIBS -lX11 $X_EXTRA_LIBS"
	CFLAGS="$CFLAGS $X_CFLAGS"
	CXXFLAGS="$CXXFLAGS $X_CFLAGS"
	LDFLAGS="$X_LIBS $LDFLAGS"
	DSOFLAGS="$X_LIBS $DSOFLAGS"
	AC_DEFINE(USE_X11)
	if test "x$x_includes" != x; then
	    ac_cpp="$ac_cpp -I$x_includes"
	fi

	dnl Check for OpenGL unless disabled...
	GLLIB=

	if test x$enable_gl != xno; then
	    AC_SEARCH_LIBS(dlopen, dl)
	    AC_CHECK_HEADER(GL/gl.h,
		AC_CHECK_LIB(GL, glXMakeCurrent, AC_DEFINE(HAVE_GL) GLLIB="-lGL",
		    AC_CHECK_LIB(MesaGL,glXMakeCurrent, AC_DEFINE(HAVE_GL) GLLIB=" -lMesaGL",,
			-lm),
		    -lm)
		AC_CHECK_LIB(GL, glXGetProcAddressARB,
		             AC_DEFINE(HAVE_GLXGETPROCADDRESSARB),, -lm)
	    )
	    AC_CHECK_HEADER(GL/glu.h,
        	AC_DEFINE(HAVE_GL_GLU_H)
		if test x$ac_cv_lib_GL_glXMakeCurrent = xyes; then
		    GLLIB="-lGLU $GLLIB"
		fi
		if test x$ac_cv_lib_MesaGL_glXMakeCurrent = xyes; then
		    GLLIB="-lMesaGLU $GLLIB"
		fi
	    )

	    if test x$ac_cv_lib_GL_glXMakeCurrent != xyes -a x$ac_cv_lib_MesaGL_glXMakeCurrent != xyes; then
		    LINKFLTKGL=""
		    GLLIBNAME=""
		    GLDSONAME=""
		    GLDEMOS=""
	    fi
	else
	    LINKFLTKGL=""
	    GLLIBNAME=""
	    GLDSONAME=""
	    GLDEMOS=""
	fi

	dnl Check for Xinerama support unless disabled...
        AC_ARG_ENABLE(xinerama, [  --enable-xinerama       turn on Xinerama support [default=yes]])

	if test x$enable_xinerama != xno; then
	    AC_CHECK_LIB(Xinerama,XineramaIsActive,
		    AC_DEFINE(HAVE_XINERAMA)
		    LIBS="-lXinerama $LIBS")
	fi

	dnl Check for the Xft library unless disabled...
        AC_ARG_ENABLE(xft, [  --enable-xft            turn on Xft support [default=yes]])

	if test x$enable_xft != xno; then
            AC_PATH_PROG(FTCONFIG,freetype-config)

	    if test "x$FTCONFIG" != x; then
	        CPPFLAGS="`$FTCONFIG --cflags` $CPPFLAGS"
	        CXXFLAGS="`$FTCONFIG --cflags` $CXXFLAGS"

	        AC_CHECK_LIB(fontconfig, FcPatternCreate)
		AC_CHECK_HEADER(X11/Xft/Xft.h,
		    AC_CHECK_LIB(Xft, XftDrawCreate,
			AC_DEFINE(USE_XFT)
			LIBS="-lXft $LIBS"))
	    fi
	fi

	dnl Check for the Xdbe extension unless disabled...
        AC_ARG_ENABLE(xdbe, [  --enable-xdbe           turn on Xdbe support [default=yes]])

	if test x$enable_xdbe != xno; then
	    AC_CHECK_HEADER(X11/extensions/Xdbe.h, AC_DEFINE(HAVE_XDBE),,
	        [#include <X11/Xlib.h>])
	    AC_CHECK_LIB(Xext, XdbeQueryExtension,
		LIBS="-lXext $LIBS")
	fi

	dnl Check for overlay visuals...
	AC_PATH_PROG(XPROP, xprop)
	AC_CACHE_CHECK(for X overlay visuals, ac_cv_have_overlay,
	    if test "x$XPROP" != x; then
		if $XPROP -root 2>/dev/null | grep -c "SERVER_OVERLAY_VISUALS" >/dev/null; then
        	    ac_cv_have_overlay=yes
		else
        	    ac_cv_have_overlay=no
		fi
	    else
        	ac_cv_have_overlay=no
	    fi)

        if test x$ac_cv_have_overlay = xyes; then
	    AC_DEFINE(HAVE_OVERLAY)
	fi

	# Make symlinks since UNIX/Linux is case sensitive,
	# but Cygwin in general not.
	case $uname in
	    CYGWIN*)
		HLINKS="#"
	    ;;
	    *)
	    ;;
	esac
	# Make symlinks since UNIX/Linux is case sensitive,
	# but only if explicitly configured (default=no)
	if test "x$with_links" != xyes; then
		HLINKS="#"
	fi

	# Install/Uninstall FLUID application support files
	INSTALL_DESKTOP="install-linux"
	UNINSTALL_DESKTOP="uninstall-linux"
	;;
esac

AC_SUBST(GLDEMOS)
AC_SUBST(GLLIB)
AC_SUBST(HLINKS)
AC_SUBST(OSX_ONLY)
AC_SUBST(THREADS)

AC_SUBST(INSTALL_DESKTOP)
AC_SUBST(UNINSTALL_DESKTOP)

dnl Figure out the appropriate formatted man page extension...
case "$uname" in
    *BSD* | Darwin*)
	# *BSD
	CAT1EXT=0
	CAT3EXT=0
	CAT6EXT=0
	;;
    IRIX*)
	# SGI IRIX
	CAT1EXT=z
	CAT3EXT=z
	CAT6EXT=z
	;;
    *)
	# All others
	CAT1EXT=1
	CAT3EXT=3
	CAT6EXT=6
	;;
esac

AC_SUBST(CAT1EXT)
AC_SUBST(CAT3EXT)
AC_SUBST(CAT6EXT)

dnl Fix "mandir" variable...
if test "$mandir" = "\${prefix}/man" -a "$prefix" = "/usr"; then
    case "$uname" in
        *BSD* | Darwin* | Linux*)
            # *BSD, Darwin, and Linux
            mandir="\${prefix}/share/man"
            ;;
        IRIX*)
            # SGI IRIX
            mandir="\${prefix}/share/catman"
            ;;
    esac
fi

dnl Fix "libdir" variable...
if test "$prefix" = NONE; then
    prefix=/usr/local
fi

if test "$exec_prefix" = NONE; then
    exec_prefix="\${prefix}"
fi

if test "$uname" = "IRIX" -a $uversion -ge 62 -a "$libdir" = "\${exec_prefix}/lib" -a "$exec_prefix" = "\${prefix}" -a "$prefix" = "/usr"; then
    libdir="/usr/lib32"
fi

dnl Define the command used to update the dependencies (this option
dnl mainly for FLTK core developers - not necessary for users)
MAKEDEPEND="\$(CXX) -M"
AC_SUBST(MAKEDEPEND)

dnl Add warnings to compiler switches:
dnl do this last so messing with switches does not break tests

if test -n "$GCC"; then
    # Show all standard warnings + unused variables, conversion errors,
    # and inlining problems when compiling...
    OPTIM="-Wall -Wunused -Wno-format-y2k $OPTIM"

    # The following additional warnings are useful for tracking down problems...
    #OPTIM="-Wshadow -Wconversion $OPTIM"

    # We know that Carbon is deprecated on OS X 10.4. To avoid hundreds of warnings
    # we will temporarily disable 'deprecated' warnings on OS X.
    if test "$uname" = "Darwin" -a $uversion -ge 800; then
        OPTIM="-Wno-deprecated-declarations $OPTIM"
    fi

    # Set the default compiler optimizations...
    if test -z "$DEBUGFLAG"; then
    	#
	# Note: Can't use -fomit-frame-pointer - prevents tools like
	#       libsafe from working!
        #
	#       Don't use -fforce-mem, -fforce-addr, or -fcaller-saves.
	#       They all seem to make either no difference or enlarge
	#       the code by a few hundred bytes.
        #
	#       "-Os" seems to be the best compromise between speed and
	#       code size.  "-O3" and higher seem to make no effective
	#       difference in the speed of the code, but does bloat the
	#       library 10+%.
	#

        if test "x$with_optim" != x; then
	    OPTIM="$with_optim $OPTIM"
	else
            OPTIM="-Os $OPTIM"
	fi
    fi

    # Generate position-independent code when needed...
    if test $PICFLAG = 1; then
    	OPTIM="$OPTIM -fPIC"
    fi

    # See if GCC supports -fno-exceptions...
    AC_MSG_CHECKING(if GCC supports -fno-exceptions)
    OLDCFLAGS="$CFLAGS"
    CFLAGS="$CFLAGS -fno-exceptions"
    AC_TRY_COMPILE(,,
	OPTIM="$OPTIM -fno-exceptions"
	AC_MSG_RESULT(yes),
	AC_MSG_RESULT(no))
    CFLAGS="$OLDCFLAGS"

    # See if GCC supports -fno-strict-aliasing...
    AC_MSG_CHECKING(if GCC supports -fno-strict-aliasing)
    OLDCFLAGS="$CFLAGS"
    CFLAGS="$CFLAGS -fno-strict-aliasing"
    AC_TRY_COMPILE(,,
	OPTIM="$OPTIM -fno-strict-aliasing"
	AC_MSG_RESULT(yes),
	AC_MSG_RESULT(no))
    CFLAGS="$OLDCFLAGS"

    # See if we are running Solaris; if so, try the -fpermissive option...
    # This option is required on some versions of Solaris to work around
    # bugs in the X headers up through Solaris 7.
    #
    # Unlike the other compiler/optimization settings, this one is placed
    # in CFLAGS and CXXFLAGS so that fltk-config will provide the option
    # to clients - otherwise client apps will not compile properly...
    if test "$uname" = SunOS; then
	AC_MSG_CHECKING(if GCC supports -fpermissive)

	OLDCFLAGS="$CFLAGS"
	CFLAGS="$CFLAGS -fpermissive"
	AC_TRY_COMPILE(,,
	    CXXFLAGS="$CXXFLAGS -fpermissive"
	    AC_MSG_RESULT(yes),
	    CFLAGS="$OLDCFLAGS"
	    AC_MSG_RESULT(no))
    fi
else
    case "$uname" in
        IRIX*)
	    # Running some flavor of IRIX; see which version and
	    # set things up according...
	    if test "$uversion" -ge 62; then
	        # We are running IRIX 6.2 or higher; uncomment the following
		# lines if you don't have IDO 7.2 or higher:
		#
		#     CXX="CC -n32 -mips3"
		#     CC="cc -n32 -mips3"
		#     LD="ld -n32 -mips3"
		#     MAKEDEPEND="CC -M"

		if test "x`grep abi=n32 /etc/compiler.defaults`" = x; then
			AC_MSG_WARN(FOR BEST RESULTS BEFORE COMPILING: setenv SGI_ABI \"-n32 -mips3\")
		fi

        	OPTIM="-fullwarn $OPTIM"
	    fi
	    if test -z "$DEBUGFLAG"; then
        	if test "x$with_optim" != x; then
		    OPTIM="$with_optim $OPTIM"
		else
        	    OPTIM="-O2 $OPTIM"
		    if test $uversion -gt 62; then
        	        OPTIM="-OPT:Olimit=4000 $OPTIM"
	            fi
		fi
	    fi
	    ;;
	HP-UX*)
	    # Running HP-UX; these options should work for the HP compilers.
	    if test -z "$DEBUGFLAG"; then
        	if test "x$with_optim" != x; then
		    OPTIM="$with_optim $OPTIM"
		else
        	    OPTIM="+O2 $OPTIM"
		fi
	    fi

	    if test $PICFLAG = 1; then
		OPTIM="+z $OPTIM"
	    fi

	    CXXFLAGS="$CXXFLAGS +W336,501,736,740,749,829"
	    ;;
	OSF1*)
	    # Running Digital/Tru64 UNIX; these options should work for the
	    # Digital/Compaq/NewHP compilers.
	    if test -z "$DEBUGFLAG"; then
        	if test "x$with_optim" != x; then
		    OPTIM="$with_optim $OPTIM"
		else
        	    OPTIM="-O2 $OPTIM"
		fi
	    fi
	    ;;
	SunOS*)
	    # Solaris
	    if test -z "$DEBUGFLAG"; then
        	if test "x$with_optim" != x; then
		    OPTIM="$with_optim $OPTIM"
		else
        	    OPTIM="-xO3 $OPTIM"
		fi
	    fi

	    if test $PICFLAG = 1; then
		OPTIM="-KPIC $OPTIM"
	    fi
	    ;;
	AIX*)
	    if test -z "$DEBUGFLAG"; then
        	if test "x$with_optim" != x; then
		    OPTIM="$with_optim $OPTIM"
		else
        	    OPTIM="-O2 $OPTIM"
		fi
	    fi

	    AC_MSG_WARN(The AIX C and C++ compilers are known not to correctly compile the FLTK library.)
	    ;;
	*)
	    # Running some other operating system; inform the user they
	    # should contribute the necessary options via the STR form..
	    AC_MSG_WARN(Building FLTK with default compiler optimizations)
	    AC_MSG_WARN(Send the FLTK developers your uname and compiler options via http://www.fltk.org/str.php)
	    ;;
    esac
fi

OPTIM="$DEBUGFLAG $OPTIM"

dnl Take archflags away from CFLAGS (makefiles use ARCHFLAGS explicitly)
if test `uname` = Darwin; then
  if test "x$with_archflags" != x ; then
    CFLAGS="`echo $CFLAGS | sed -e "s/$with_archflags//g"`"
  fi
fi

dnl Define the FLTK documentation directory...
case $uname in
  MINGW*)
     # Determine the path where MSys has /usr installed
 	msyspath=`mount | grep '\/usr ' | cut -d ' ' -f -1 | sed -e 's/\\\/\// g'`
     # Then substitute that in the WIN32 path instead of /usr
 	AC_DEFINE_UNQUOTED(FLTK_DOCDIR, "$msyspath/local/share/doc/fltk")
    ;;
  *)
    if test x$prefix = xNONE; then
	AC_DEFINE_UNQUOTED(FLTK_DOCDIR, "/usr/local/share/doc/fltk")
    else
	AC_DEFINE_UNQUOTED(FLTK_DOCDIR, "$prefix/share/doc/fltk")
    fi
    ;;
esac

dnl Define the FLTK data directory...
if test x$prefix = xNONE; then
    AC_DEFINE_UNQUOTED(FLTK_DATADIR, "/usr/local/share/fltk")
else
    AC_DEFINE_UNQUOTED(FLTK_DATADIR, "$prefix/share/fltk")
fi

dnl Summarize results of configure tests...
echo ""
echo "Configuration Summary"
echo "-------------------------------------------------------------------------"

case $uname_GUI in
    CYGWIN* | MINGW*)
        graphics="GDI"
	;;
    Darwin*)
        graphics="Quartz"
        ;;
    *)
        graphics="X11"
	if test x$enable_xft != xno; then
	    graphics="$graphics+Xft"
	fi
	if test x$enable_xdbe != xno; then
	    graphics="$graphics+Xdbe"
	fi
	if test x$enable_xinerama != xno; then
	    graphics="$graphics+Xinerama"
	fi
        ;;
esac

echo "    Directories: prefix=$prefix"
echo "                 bindir=$bindir"
echo "                 datadir=$datadir"
echo "                 datarootdir=$datarootdir"
echo "                 exec_prefix=$exec_prefix"
echo "                 includedir=$includedir"
echo "                 libdir=$libdir"
echo "                 mandir=$mandir"
case $uname in
  MINGW*)
    echo "                 MSys docpath=$msyspath/local/share/doc/fltk"
  ;;
esac
echo "       Graphics: $graphics"

if test x$JPEG = x; then
    echo "Image Libraries: JPEG=System"
else
    echo "Image Libraries: JPEG=Builtin"
fi
if test x$PNG = x; then
    echo "                 PNG=System"
else
    echo "                 PNG=Builtin"
fi
if test x$ZLIB = x; then
    echo "                 ZLIB=System"
else
    echo "                 ZLIB=Builtin"
fi
if test x$enable_cairo = xyes; then
    echo "                 CAIRO=lib"
fi
if test x$enable_cairoext = xyes; then
    echo "                 CAIRO=internal_use"
fi


if test x$enable_largefile != xno; then
    echo "    Large Files: YES"
else
    echo "    Large Files: NO"
fi

if test x$GLDEMOS = x; then
    echo "         OpenGL: NO"
else
    echo "         OpenGL: YES"
fi

if test x$THREADS = x; then
    echo "        Threads: NO"
else
    echo "        Threads: YES"
fi

dnl Write all of the files...
AC_CONFIG_HEADER(config.h:configh.in)
AC_OUTPUT(makeinclude fltk.list fltk-config fltk.spec FL/Makefile)

dnl Make sure the fltk-config script is executable...
chmod +x fltk-config

dnl
dnl End of "$Id: configure.in 9328 2012-04-07 11:56:09Z AlbrechtS $".
dnl
